Providing continued searching and associated indicators

ABSTRACT

A search continuation device and its operations include, for example, performing a first electronic search based on first search criteria. The first electronic search generates first search results. The operations can further include electronically storing search data associated with the first electronic search (e.g., in a user account). The operations can further include performing a second electronic search with second search criteria substantially similar to the first search criteria. The second electronic search generates second search results. The operations can further include, retrieving the search data (e.g., from the user account), and providing, based on the search data, one or more indicators for presentation with the second search results. The one or more indicators specify continued search information, such as a degree to which content contained within an item of the first search results was previously accessed or a difference between the first search results and the second search results.

RELATED MATTERS

This application is a Continuation of and claims the priority benefit ofU.S. application Ser. No. 15/078,262 filed Mar. 23, 2016.

BACKGROUND

The descriptive material herein generally relates to the field ofelectronic searching.

Electronic searching involves using a computer to find a subset of acollection of items based on search criteria. An Internet searchtypically utilizes a web search engine to search for items on the WorldWide Web. The search results are generally presented in a line orlisting of items that result from executing a search procedure usingsearch terms (e.g., keywords) provided by a user. The items returned inthe results may be a mix of web pages, images, and other types of files.Many web search engines collect information about items by web crawlingfrom site to site and storing, in an index, information about the item(e.g., website titles or names, some page content, headings, metadata inHTML metatags, web addresses, etc.). For instance, a search engineassociates words and other definable tokens found on web pages to theirdomain names and HTML-based fields. The search engine makes and storesassociations in a public database, which is made available for websearch queries. A query from a user can be a single word or a collectionof words. Typically when a user enters a query into a search engine(e.g., one or more keywords entered by the user at the search enginewebsite), the search engine access the index using the keywords.

SUMMARY

A search continuation device and its operations include, for example,performing a first electronic search based on first search criteria. Thefirst electronic search generates first search results. The operationscan further include electronically storing search data associated withthe first electronic search (e.g., in a user account). The operationscan further include performing a second electronic search with secondsearch criteria substantially similar to the first search criteria. Thesecond electronic search generates second search results. The operationscan further include, retrieving the search data (e.g., from the useraccount), and providing, based on the search data, one or moreindicators for presentation with the second search results. The one ormore indicators specify continued search information, such as a degreeto which content contained within an item of the first search resultswas previously accessed or a difference between the first search resultsand the second search results.

BRIEF DESCRIPTION OF THE DRAWINGS

The present embodiments may be better understood, and numerous objects,features, and advantages made apparent to those skilled in the art byreferencing the accompanying drawings.

FIG. 1 is an example illustration of performing a web search, analyzingsearch use activity, and storing data for continued searching.

FIG. 2 is an example illustration of performing a continued electronicsearch, analyzing data from a previous search, and providing continuedsearch information.

FIG. 3 is an example flow diagram 300 illustrating performing acontinued search and providing continued search indicators.

FIG. 4 is an example flow diagram 400 illustrating analyzing content anddetermining indicator values for a continued search.

FIG. 5 is an example illustration of an example computer system.

FIG. 6 is an example illustration of a networking environment.

DESCRIPTION OF EMBODIMENT(S)

The description that follows includes exemplary systems, methods,techniques, instruction sequences and computer program products thatembody techniques of the present inventive subject matter. However, itis understood that the described embodiments may be practiced withoutthese specific details. For instance, although examples refer to websearching, other examples can be associated with other forms ofsearching, such as computer file searching, commercial databasesearching, distributed storage system searching, image searching,heuristic searching, and so forth. In other instances, well-knowninstruction instances, protocols, structures and techniques have notbeen shown in detail in order not to obfuscate the description.

Typically, when a user initiates a web search using a web searchwebsite, the web search website returns a list of many search resultitems. For example, when a user submits search criteria via the websearch website, the web search website returns first search results as alist of links to webpages on the Internet related to the searchcriteria. A user may read content from some of the links to varyingdegrees (e.g., some webpages may be opened in the browser for longerperiods of time than other webpages, some webpages may be scrolledfurther, etc.). Others webpages may go unread. Over time the content onsome of the webpages may change or be deleted. New content is added.Further, users typically forget what websites they have previously readand to what degree they have read them.

If the same search criteria is subsequently submitted in a secondsearch, a web browser currently provides no contextual clues in alisting of second search results regarding to what degree content fromthe first search results had been previously read, whether any of thesecond search results are new or missing, whether there had beenmodifications to content between the time of the first search and thesecond search, etc. In other words, from the user's perspective, thesecond search results are new. The user cannot leverage their previoussearch activity from the first search in the context of their secondsearch on the same search criteria. Consequently, their second searchsession lacks productivity. FIGS. 1 and 2 below illustrate one exampleof providing a continued search on substantially similar searchcriteria. For instance, FIGS. 1 and 2 illustrate options for usingsearch data to analyze items from new and old search results and providecontextual indicators with the second search results to leverage thefirst search. For instance, the contextual indicators can specify adegree to which content was accessed or used during a first searchsession, a difference between first and second search results, etc.

FIG. 1 is an example illustration of performing a web search, analyzingsearch use activity, and storing data for continued searching. In FIG.1, a computer 145 presents a web browser 101 via a display of a computer145. The web browser 101 presents a web browser 101 hosted by a server150. The server 150 is connected to the computer 145 via acommunications network 160. The web search website 102 includes afeature by which a user (e.g. Mike Miller) can login to a user account171. The server 150 can provide, on the web search website 102, anidentifier 172 (e.g., an avatar), which signifies that the user account171 is currently logged into and associated with the web search website102. Information for the user account 171 can be associated with theserver 150 (e.g., stored in a memory storage unit of the server 150,stored in memory storage unit of a user account server accessible to theserver 150, stored in a memory storage unit of a third-party deviceaccessible to the server 150, etc.). In other instances, informationregarding the user, the search criteria, the electronic search results,etc. may be stored locally on the computer 145, for instance, in acookie, a local database, etc.

The web search website 102 includes a search query field 103. The searchquery field 103 is a graphical user interface element in which searchcriteria can be entered via user input (e.g., by typing on a keyboard,by voice commands, etc.). For example, textual terms are entered intothe search query field 103 forming a search query 104 (e.g., “How muchTV does a family watch daily?”).

Upon detecting user input to submit the search query 104, the computer145 electronically transmits the search query 104 to the server 150. Forinstance, the computer 145 transmits a message containing the searchquery 104 in response to an “Enter” key being pressed on a keyboard or a“submit” button being selected on the web search website 102. Thecomputer 145 submits the message with the search query 104 via thecommunications network 160 to the server 150. The server 150 receivesthe message with the search query 104 and initiates a search procedurefor a first electronic search. For instance, the server 150 can parsethe terms and punctuation in the search query 104, isolating certainkeywords 105 (e.g., “family,” “television,” “watch,” “daily”). Theserver 150 can then execute a subroutine that utilizes a searchalgorithm to evaluate whether any portion of the keywords 105 are in anindex. The index includes data obtained about the websites, such as froma web crawler. The server 150 selects a portion of the websitesreferenced in the index based on an outcome of the search procedure(e.g., based on first search results generated by use of a searchalgorithm). The server 150 determines, in response to executing thesearch procedure, a first listing 110 of links 111, 112, 113, and 114 tothe selected portion of the websites, along with other information aboutthe selected portion of the websites (e.g., webpage titles, webaddresses, webpage content summaries, etc.).

The server 150 stores information about the search query 104 and theresults of the first electronic search for the search query 104. Forinstance, the server 150 stores in the user account 171 time and/or dateinformation (e.g., timestamp 109) for the electronic search. The server150 also stores the keywords 105. Further, the server 150 storesidentifiers 121, 122, 123, and 124 about the search items from the firstsearch results. The identifiers 121, 122, 123, and 124 may be uniqueidentifiers for the items from the first search results. The identifiers121, 122, 123, and 124 may include, but are not be limited to, UniformResource Identifiers (e.g., Uniform Resource Locator (URL) values, orUniform Resource Name (URN) values), file names, serial numbers, filepath names, Internet Protocol addresses, domain names, tags, fragmentvalues, scheme names, namespaces, host names, user information, portvalues, query values, Hypertext Markup Language (HTML) values,Extensible Markup Language (XML) values, Extensible Stylesheet LanguageTransformation (XSLT) values, any combinations of the above, etc.

Furthermore, in FIG. 1, the server 150 determines to what degree contentof any accessed item had been read. For instance, the server 150 candetermine a degree to which content contained within an accessed itemhas been accessed (e.g., a degree to which a webpage had been read bythe user) based on various analysis techniques and factors various. Forexample, the server 150 can determine an amount of time a webpage wasopen based on an implicit or explicit reading rate of a user, a numberof times a scrolling activity occurred on the webpage, and so forth. Inone example, the server 150 detects that the link 111 is selected. Theserver 150 also detects a webpage associated with the link 111 is openfor a certain amount of time. The server 150 performs analysis using theamount of time the webpage was open, a reading rate for the user, and anumber of words within the webpage to determine that approximately 20%of the content on the webpage was read. The server 150 stores, in theuser account 171, the data pertaining to the analysis (e.g., the amountof time the page was open, the reading rate, the number of words, theestimated “20%” amount, etc.). For instance, the server 150 stores theestimated “20%” value as an accessed level 131. The server 150associates the accessed level 131 with the identifier 121 for the link111.

In a similar fashion, when the link 112 is selected, the server 150determines to what degree the content for the link 112 was read. Forexample, the server 150 determines that 50% the content associated withthe link 112 was read. The server 150 stores, in the user account 171,the “50%” amount as an accessed level 132. The server 150 associates theaccessed level 132 with the identifier 122 for the link 112.

Likewise, when the link 113 is selected, the server 150 determines towhat degree the content for the link 113 was read. For example, theserver 150 determines that 100% the content associated with the link 113was read. The server 150 stores, in the user account 171, the “100%”amount as an accessed level 133. The server 150 associates the accessedlevel 133 with the identifier 123 for the link 113.

The server 150 can also store information on non-accessed links. Forinstance, link 114 is not accessed. The server 150 stores a value 134 toindicate that the link 114 was not accessed.

FIG. 2 is an example illustration of performing a continued electronicsearch, analyzing data from a previous search, and providing continuedsearch information. In FIG. 2, a second electronic search is performedafter the first electronic search depicted in FIG. 1. For instance,after the server 150 executes the search procedure for the firstelectronic search, the user associated with the computer 145 may want toperform a second search. The web search website 102 presents the searchquery field 103 as well as a continued search control 203. The continuedsearch control 203 provides a mechanism by which information about aprevious search query can be selected. For instance, if the user account171 is still logged into (or re-logged into), the server 150 accesses,from the user account 171, information about the first electronicsearch, such as the search query 104 and/or the keywords 105. Thecontinued search control 203 then presents a previous search indicator204 that identifies the search query 104, which is selectable by userinput. After the previous search indicator 204 is selected, the computer145 transmits the resubmitted search query 104 to the server 150. Theserver 150 stores, in the user account 171, a time stamp 209 for whenthe second electronic search was performed on the search query 104. Theserver 150 executes the search procedure again on the keywords 105 andreturns second search results for the second electronic search as asecond listing 210 of links 111, 112, 113, and 215.

The server 150 can determine that some of the links 111, 112, 113 or 215included in the second search results were also included in the firstsearch results from the first electronic search. For instance, for thesecond electronic search the server 150 determines, by revaluation ofthe keywords 105 at the time of the second electronic search, that thelinks 111 and 113 are in the index maintained by the server 150. Theserver 150 accesses the data from the user account 171 to determine thatlinks 111 and 113 were also in the first search results. As a result,the server 150 can provide indicators that show that links 111 and 113were already presented. For instance, the server 150 can adjust apositioning algorithm to place the links 111 and 113 on the first pageof the listing 210. In other examples, the server 150 can presentgraphical indicators, such as special symbols or colors to indicate thatthe links 111 were included in the first search results, regardless ofwhether or not they were visited.

Further, the server 150 compares new search results from the secondelectronic search to the previous search results from the firstelectronic search and determines differences. For instance, when theserver 150 determines the second search results, the server 150 comparesthe second search results to the data stored in the user account 171.The server 150 determines that a new link 215 was returned in the secondsearch results. The new link 215 is to a new item from the Internetavailable at the time of the second electronic search (and found in theindex at the time of the second electronic search) that was notavailable at the time of the first electronic search. As a result, theserver 150 provides an indicator 285 that specifies that the link 215 isa new result (e.g., a graphic or text that states “New” positionedadjacent to the link 215 within the web browser 101). In anotherexample, the server 150 accesses a stored version of content containedwithin an item associated with an accessed link at the time of firstelectronic search (“first version of the content”). The server 150compares the first version of the content to a second, current versionof the content for a returned link at the time of the second electronicsearch (“second version of content”). The server 150 determines, basedon the comparison, whether any of the content has changed in the timebetween the first electronic search and the second electronic search.For instance, content for a webpage associated with link 113 has changed5% between the time the first search was performed and the time thesecond search was performed. Thus, the server 150 provides an indicator293 to specify the degree of difference. Previous versions of thecontent may be stored in memory associated with the server 150, inmemory of the computer 145, in the user account 171, or in another otherlocations accessible to the server 150.

Furthermore, the server 150 can present an indicator 256 that highlightsa change from a previous version of the content. For instance, somecontent listed for link 113 shows that the word “five” is crossed out(with a strikethrough text to indicate deletion) and replaced with theword “four” (with underlined text to indicate addition). The word “five”was previously in the content for the link 113 at the time that thefirst search was performed. At the time of the second search, thecontent for the link 113 instead had the word “four.” Because the server150 detected that the content had changed from its previous version, theserver 150 highlights the difference in the text of the content.

In addition to comparing current content to previous versions ofcontent, the server 150 provides information to assist the user indetermining activity and analysis performed at the time of, or shortlyafter, the first search. The information can indicate, for instance, towhat degree the previous content was read. For example, as described inFIG. 1, the server 150 determined a degree to which web content for eachof the links 111, 112, 113 and/or 114 had been read and stored theinformation in the user account 171. Therefore, at the time of thesecond electronic search, the server 150 reads from the user account 171the degree to which the content for each of the links 111, 112, 113,and/or 114 had been read and provides indicators 281 and 283, which showthe percentages that the webpages for links 111 and 113 had beenpreviously read.

In addition, the server 150 determines whether any items from the firstsearch results are missing from the second search results. For instance,the server 150 determines, after initiating the search procedure for thesecond electronic search, that the link 112 was included in the firstsearch results but is not in the second search results. Consequently,the server 150 provides an indicator 282 indicating that the link 112 isno longer available at the web address for the link 112. In someinstances, the server 150 can instead provide a cached version of thecontent for link 112 if the indicator 282 is selected.

Furthermore, the server 150 can store data pertaining to the secondelectronic search. For instance, the server 150 can store identifiers121, 122, 123, and 225 for the links 111, 112, 113, and 215 in the useraccount 171. Furthermore, if any of the active links 111, 113, or 215are accessed again, the server 150 can determine an additional degree towhich the links 111, 113, or 215 are read and store that data in theuser account 171. For instance, if the link 111 is accessed again andthe server 150 determines that the content for the link 111 wascompletely read, then the server 150 updates the user account and storesan updated accessed level 231 showing that all of the content was read.The server 150 can store additional data, such as value 242 to indicatethat the content associated with the link 112 is no longer available.Further, the server 150 stores content change level 234 to indicate adegree to which the content for link 113 has changed since the time ofthe first electronic search. The server 150 also stores value 235 inassociation with identifier 225 to indicate that link 215 is a new linkpresented for the second search results. The server 150 also determinesa degree to which the content for link 215 was accessed and storesaccessed level 245.

Example Operations

This section describes operations associated with some embodiments. Inthe discussion below, some flow diagrams are described with reference toblock diagrams presented herein. However, in some embodiments, theoperations can be performed by logic not described in the blockdiagrams.

In certain embodiments, the operations can be performed by executinginstructions residing on machine-readable storage media (e.g.,software), while in other embodiments, the operations can be performedby hardware and/or other logic (e.g., firmware). Moreover, someembodiments can perform more or less than all the operations shown inany flow diagram.

FIG. 3 is an example flow diagram (“flow”) 300 illustrating performing acontinued search and providing continued search indicators. Thedescription associated with FIG. 3 may refer momentarily to the examplesof FIGS. 1 and 2.

In FIG. 3, the flow 300 begins at processing block 302, where anelectronic device configured to provide continued search features(“search continuation device”) performs a first electronic search(“first search”) based on first search criteria. In some instances, thesearch continuation device is a server (e.g., the server 150 of FIGS. 1and 2) a computer (e.g., the computer system of FIG. 5), a mobiledevice, a combination of devices, etc. In some embodiments, the searchcontinuation device is configured to determine first user input thatspecifies first search criteria for the first search. The searchcontinuation device conducts a first search procedure for the firstsearch criteria. For instance, the search continuation device parsessearch query terms provided via the user interface and determineskeywords. The search continuation device executes a search procedureassociated with a search engine using the keywords. The searchcontinuation device initiates a search through an index of informationassociated with each item in a group that is electronically searchable.An item may include any electronically analyzable member from a set ofdistinct, electronically searchable objects, such as, but not limitedto, content on the Internet (e.g., web pages, images, movies, articles,files, etc.), index entries in a search index (e.g., web documentreferences, document titles, filenames, etc.), computer files stored ona computer-readable storage medium, records stored in a database,elements in a search space defined by a mathematical formula orprocedure (e.g., roots of an equation with integer variables), solutionsfrom a virtual space used in a constraint satisfaction problem, asubstructure of a given discrete structure (e.g., a graph, a string, afinite, group, etc.), storage devices in a storage area network (e.g.,disk arrays, tape libraries, optical jukeboxes, etc.), and so forth.Each searchable item has specific properties and/or characteristics thatdistinguish the item to make it unique from any other searchableobjects. For instance, each item may have a unique identifier (e.g., aunique network address, a serial number, a catalog number, etc.).Properties and characteristics can be combined to form a uniqueidentifier (e.g., a unique combination of file name and network path).In some examples, for an online search, the item may be a webpage orlink to a webpage (e.g., a reference to a webpage stored in an index),which has a unique Uniform Resource Locator (URL). Each item includesmore detailed data that is electronically searchable and which may bedistinct from content of other items (e.g., web-page content, URL data,title tags, image file names, meta-descriptions, etc.).

The search continuation device, via the search procedure, determineswhich of the items from the group are applicable to the search queryterms. For instance, the search continuation device compares thekeywords from the search terms to textual descriptions of elementsand/or characteristics of the items (e.g., title, abstract, summary,content, metadata, etc.). Based on a number of similarities between thekeywords and the search terms, according to a search algorithm, thesearch continuation device determines which of the items should beincluded in the search results, and, in some instances, determines aranked order for the listing of items. The listing of items may includean item itself, a copy of the item, a representation of the item,references to the item, portions of the item, elements of the item, etc.

The flow 300 continues at processing block 303, where the searchcontinuation device determines a degree to which content is accessedfrom at least some first search-result items. For example, the searchcontinuation device can determine a percentage of content, containedwithin an item of the first search results, which is read, listened to,viewed, played, completed, filled in, copied, modified, etc.

The search continuation device can determine the degree to which thecontent is accessed in various ways. For instance, the searchcontinuation device can apply the following equation:percentage of content accessed=100×((amount of use of content for anitem)×(a use rate))/(a total amount of the content contained within theitem).  Equation 1:

In some examples, the use rate can be explicitly or implicitlydetermined. For instance, if the use rate is a reading rate, the readingrate can be explicitly determined based on a user-specified value (e.g.,entered by the user). In another example, a reading rate can beexplicitly determined based on a reading test presented to the user. Inother instances, a reading rate can be implicitly determined, forinstance by using an average reading rate (words/time) of persons withsimilar age, education, or other demographic characteristics as theuser. In one example, if a webpage that contains a news article is openfor 1 minute, and a user reading rate is 60 words per minute, and thewebpage includes 300 total words, then the values can be entered into aversion of equation 1 as follows: percentage of words read on awebpage=100×((amount of time webpage was open)×(a reading rate for auser))/(the total number of words on the webpage)=100×((1 minute)×(60words/minute))/(300 words)=20% of words read. Consequently, the searchcontinuation device determines that approximately 20% of the webpage wasaccessed. The search continuation device can store the value of 20% forfuture reference if the webpage is included in results from a subsequentsearch.

In some instances, the use rate is a rate at which specific contentwithin the item is presented or played. For example, if the content is asong or video, and the song or video plays within a web browser at agiven playing rate, then the playing rate can be used as the use rate.For instance, a music player on a webpage may play a song for 20 secondsbefore the music player is stopped, or before the webpage is closed. Themusic player is configured to play the song at a tempo of 100 beats perminute (based on metadata associated with the song). Further, the songis 300 beats long. The search continuation device can enter those valuesinto a version of equation 1 as follows: percentage of song played on awebpage=100×((amount of play of the song)×(the playing tempo of themusic player for the song))/(the length of the song)=100×((20seconds)×((100 beats/minute)×(1 minute/60 seconds))/(300 beats in thesong)=11.11% of the song played. Consequently, the search continuationdevice determines that approximately 11% of the song was accessed. Thesearch continuation device can store the value of 11% for futurereference if the webpage is included in results of a subsequent searchor if another webpage presenting the song occurs in results of asubsequent search.

In another example, the search continuation device can compute anestimated percentage of content that was accessed according to an amountof time spent scrolling or an amount of pages scrolled, such asaccording the following formula:percentage of content read=(a number of pages scrolled down on anitem)/(a total number of scrollable pages of the item).  Equation 2:

For example, after a first web search, if one of the links included inthe search results is selected, a web browser presents a webpageassociated with the link. The web browser presents the webpage accordingto a resolution setting of a display and/or according to font and zoomsettings of the web browser. Based on the settings, the web browser maypresent the webpage with ten scrollable pages. The search continuationdevice can determine, for instance, that the user scrolls through twoout of the ten pages. Therefore, no more than 20% of the page could havebeen visible on a display, and so the search continuation deviceestimates that 20% of the content was read.

In other examples, the search continuation device uses a combination oftechniques. For example, if the user scrolls down to the second page(out of 10 pages), but the webpage is immediately closed or navigatedaway from thereafter, then the search continuation device may estimatethat the second page could not have been read. Therefore, the searchcontinuation device estimates that 10% of the content was read.

In other instances, the search continuation device analyzes the contentto determine whether there are certain types of content. For instance,the search continuation device can determine that a webpage includesboth text and graphics. In some instances, during the computation of thepercentage of content read, the search continuation device may detectthat a particular page of a document has many graphics versus text.Thus, the search continuation device may adjust the reading rate for theuser to be higher for that given page to compensate for the reducedamount of text on the page.

The flow 300 continues at processing block 304, where the searchcontinuation device electronically stores first search data associatedwith the first electronic search in a memory storage unit associatedwith the search continuation device. For example, the searchcontinuation device stores in a memory storage unit search result links,content, metadata, degree of content access, etc. The memory storageunit can be connected to one or more of the computer (e.g., a cookie, afile, a local database, etc.), a secondary device (e.g., a thumb drive,a peripheral disk drive, a mobile device, etc.), a user account (e.g.,via user account credentials), etc. The first search data includes, butis not limited to, one or more of the following: keywords from the firstsearch; a search time; first search results; content from items of thefirst search results; identifiers of the items; metadata; informationabout whether, and to what degree, content of an item was accessed; anindication of what content was displayed or presented; an amount of timean item was displayed; a number of pages in an item; an amount ofscrolling; user credentials; user identifiers; indications of useractivity (e.g., navigation activity, submission activity, playingactivity, purchase activity, etc.), and so forth. In some instances, thesearch continuation device can detect whether a user input is entered tospecify whether to save some or all of the search data. For instance,the search continuation device can present one or more options for auser to specify which data to save (e.g., an option to save a websearch, an option to save analysis regarding an amount of data accessedor read, etc.).

The flow 300 continues at processing block 306, where the searchcontinuation device receives a second user input that specifies secondsearch criteria substantially similar to the first search criteria. Forexample, the search continuation device detects that a search string isentered into a search field. The search continuation device can thencompare the search string to determine if it is equivalent to (e.g., hasequal or nearly identical keywords as) a previously saved search, suchas the keywords from the first search. In another example, the searchcontinuation device detects that a previously saved search string isselected from one or more saved searches. For example, the searchcontinuation device can provide a dropdown option to select savedgroupings of keywords from previous searches (e.g., in FIG. 2 theindicator 204 that identifies the search query 104 may be in a dropdownmenu having only saved searches). In another example, the searchcontinuation device may present suggested searches based on words typedinto a search field. For instance, as text is typed into a search field,the search continuation device presents a dropdown menu that specifiessuggestions for possible combinations of keywords. As each word istyped, the search continuation device continuously checks whether thecombination of words typed are similar to a previously saved combinationof words from a previous search. In some instances, after a certainnumber of the words are typed into the search field, the searchcontinuation device may present previous saved searches related to oneor more specific keywords. For instance, after “How much TV” is typedinto the search field, the search continuation device determines thatthe second search will be related to the keyword “TV.” The searchcontinuation device thus presents saved search queries related to TV(e.g., the search continuation device presents a selectable option thatspecifies the search query “How much TV does a family watch daily?” thatwas saved previously).

The flow 300 continues at processing block 308, where the searchcontinuation device performs a second electronic search (“secondsearch”) with the second search criteria, which generates second searchresults. The search continuation device may perform the second searchsimilar to first search. For instance, the search continuation devicemay execute the same search procedure, using the same search algorithm,as from the first search. However, because some time has passed betweenthe first search and the second search, the search index may havechanged based on changes to searchable items. Therefore, the secondsearch results may be different from the first search results.

The flow 300 continues at processing block 310, where the searchcontinuation device retrieves, from the memory storage unit, the firstsearch data. For instance, the search continuation device retrieves fromthe first search data information about which items from the firstsearch results were accessed and to what degree they were accessed,similar to the description in FIG. 2.

The flow 300 continues at processing block 312, where the searchcontinuation device evaluates content from one or more secondsearch-result items according to content from one or more firstsearch-result items. For instance, the search continuation devicedetermines that at least one of the items from the second search resultswas also included in the first search results. For example, one of theitems from the second search results may have an exact network addressand name (e.g., the same URL and webpage title) as an item from thefirst search results. If the search continuation device detects amatching item, the search continuation device can select the item forevaluation. In some instances, the search continuation device filtersthe matches before selecting any of the matches for evaluation. Forinstance, the search continuation device can select only items that wereread or accessed from the first search results. In another example, thesearch continuation device may select whether to evaluate a matched itemonly if the matched item has a sufficiently high ranking in the secondsearch results (e.g., the search continuation device only evaluatesitems if they appear on a first page of results). In one example, toevaluate the content of matched items, the search continuation devicecan determine a numerical value that describes a characteristic of aprevious version of the content, such as a number or order of words inthe content. In some instances, the numerical value is more than merelya value that specifies whether an item was opened, but includes a degreeof access (e.g., use) of the content contained within the item. Forexample, the numerical value can be an analytical outcome of previouslyaccessed content, such as a degree to which the content that waspreviously read. The search continuation device can compare a value froman updated version of the content to a version of the content that waspreviously accessed. FIG. 4 (described in more detail further below)illustrates an example of a search continuation device that evaluatescontent from one or more second search-result items according to contentfrom one or more first search-result items.

The flow 300 continues at processing block 314, where the searchcontinuation device provides one or more indicators to specify continuedsearch information. The one or more indicators may specify a degree ofprevious content access or a difference between the first search resultsand the second search results.

An example of an indicator includes, but is not limited to text, agraphic, a pop-up, a specific color, a font type, a font characteristic,a specific size of object, a specific symbol, a light or sound effect, anumber, a position on a page, etc. In some instances, as described inFIG. 2, an indicator may specify whether an item is new, is missing ordeleted, or has been changed from a previous version. The indicator mayalso specify a degree to which an item has changed. The indicator mayalso specify a degree to which content of an item had been previouslyaccessed.

In some instances, the indicator specifies whether an item in the secondsearch fails to meet certain criteria or thresholds. For instance, anitem in the first search may have been read but marked (e.g., selected,rated, ranked, tagged, etc.) by user input as being below a specificlevel of value. If so, then if the same item appears in the secondsearch, that item may be positioned lower in a listing for the secondsearch results. In other instances, that item may be marked by aspecific visual indicator to specify the level or degree ofsignificance.

In some instances, the search continuation device may vary thecharacteristic of the indicators proportional to a numerical valueassociated with analysis of an item. For example, if a first item hadbeen read 100%, then a first indicator for that item may be smaller orless prominent than a second indicator for a second item that had beenread to a lesser degree, or vice versa. The indicator may furtherspecify a numerical value on the indicator (e.g., a percentage). In anexample where there is a change between versions of content, theindicator can include color or font highlighting within the body of thechanged content (e.g., yellow highlighting on words that were added orchanged in the content).

Furthermore, in addition to providing indicators, the searchcontinuation device can also save second search data associated with thesecond search, such as second search results, a time the second searchwas performed, changes to the content, an updated degree of access, etc.

Furthermore, in some examples, the search continuation device can referto user settings or preferences. For instance, the search continuationdevice can detect whether a user selects an option to display one ormore of the indicators. In some instances the user settings can specifycustomized indicators (e.g., with custom graphics, with specificaccessibility features, etc.).

FIG. 4 is an example flow diagram (“flow”) 400 illustrating analyzingcontent and determining indicator values for a continued search. In FIG.4, the flow 400 begins at processing block 401 where a searchcontinuation device determines at least a portion of items from thefirst search results to evaluate. In some instances only some of theitems from the first search results are selected, such as only aspecific number of the top hits from the first search (e.g., only linksfrom a first page of the first search results) or only a specific numberof items manually selected by the user.

The flow 400 continues at processing block 402, where a searchcontinuation device determines whether an item from first search resultsis in the second search results. If the instant item is not in thesecond search results, then the flow 400 continues to block 404 wherethe search continuation device generates an indicator value specifyingthat the item is not in the second search results. If the item from thefirst search results is in the second search results, the processcontinues at block 406 where the search continuation device determineswhether the item was previously read. If the item was not previouslyread, then the search continuation device can avoid having to evaluatethe item. In some example instances, the decision associated withprocessing block 406 may be included in the eligibility criteria atprocessing block 401. If, at processing block 406, the eligible item hadnot previously been read, the search continuation device can, atprocessing block 405, generate an indicator value specifying that itemhad not previously been read (e.g., a link's font has a specific colorshowing that the item was previously presented but not accessed). If,however, at processing block 406, the eligible item had previously beenread, then the flow 400 branches into two parallel paths, Path 1 andPath 2, which start respectively at block 408 and block 416. Thisdescription will first describe Path 1.

The flow 400 continues at processing block 408, where the searchcontinuation device evaluates a first version of content for the item ata first time that the first search occurred against a second version ofcontent for the item at a second time that the second search occurred.For instance, the search continuation device can access the previousversion of the content from one of various locations, such as, but notlimited to, a user account, a versioning database, a cookie, etc. Thesearch continuation device can access the current version of the contentby pre-loading content from the second search into a buffer. The searchcontinuation device then performs a comparison between the two versions.The search continuation device can utilize a diff function (e.g.,longest common subsequence function, longest increasing subsequencefunction, rolling hash function, etc.). The search continuation devicecan also compare metadata (e.g., XML, tags, image descriptions, etc.).The search continuation device can also change the format of data beforeevaluating the content, such as by performing a text recognitionfunction on an item to determine the identity of characters within thecontent. In some instances, the search continuation device performs thecomparison before the item returned by the second search is accessed bya user. For instance, while performing the second search procedure thesearch continuation device can perform the comparison. However, in otherexamples the search continuation device can perform the comparison onlyafter a user selects an item from the second search results (e.g., afterdetecting that a webpage link is clicked on from a listing of links thatshow the second search results). At that moment, the search continuationdevice may retrieve the current content of the web page and compare themost current version of the content with the previously saved version ofthe content.

The flow 400 continues at processing block 410, where the searchcontinuation device determines one or more differences between the firstversion and the second version. For example, the search continuationdevice may detect whether text within the content has changed, whetherimage names or properties have changed, whether data has been moved orrearranged, whether data sources for the content are different, etc.

In some instances, the search continuation device determines a degree ofchange that the one or more differences represent. For example, thesearch continuation device can determine whether a certain percentage ofthe content has changed in wording, positioning, numbering, imagery,formatting, metadata, etc. In some instances, the search continuationdevice determines a type of change that the one or more differencesrepresent. For example, the search continuation device can determinewhether actual words have changed to new words (i.e., wording changes)versus whether only font properties or punctuation have changed.

The flow 400 continues at processing block 414, where the searchcontinuation device generates an indicator that specifies the one ormore differences. For instance, the search continuation device cangenerate one or more indicators that specify a degree of change and/ortype of change to the content. The search continuation device cangenerate a graphic to present with the second results in connection witha reference to the item, as similarly shown in FIG. 2 for indicator 293.For instance, the search continuation device can position a graphic thatindicates the degree or type of change adjacent to, superimposed over,embedded into, etc. the content or a link to the content. In someinstances, the search continuation device can also determine which ofthe types or amounts of changes would be relevant to a user and generatethe indicator for only the relevant changes. For instance, if a changeto the content was to wording within a certain portion of the content(e.g., content between the “<body></body>” Hypertext Markup Language(HTML) elements of a webpage), the search continuation device candetermine that the changed content is highly relevant. However, ifchange to the content was merely to text formatting, to positioning, topunctuation, or the like, the search continuation device may determinethat the changed content is less relevant.

Referring now to the Path 2, which begins at processing block 416, thesearch continuation device determines a degree to which content of theitem was read before the second search. For example, the searchcontinuation device reads data stored in a user account regarding apercentage that the content was read before the second search wasperformed.

The flow 400 continues at processing block 418, where the searchcontinuation device generates an indicator value that specifies thedegree to which the content was previously accessed. For instance, thesearch continuation device generates a graphic that shows a percentageof content that was read, as similarly shown in FIG. 2 for indicators281 and 283.

In some embodiments, the operations can be performed in series, while inother embodiments, one or more of the operations can be performed inparallel, such as Path 1 and Path 2 of flow 400 that flow fromprocessing block 406.

As will be appreciated by one skilled in the art, aspects of the presentinventive subject matter may be embodied as a system, method or computerprogram product. Accordingly, aspects of the present inventive subjectmatter may take the form of an entirely hardware embodiment, an entirelysoftware embodiment (including firmware, resident software, micro-code,etc.) or an embodiment combining software and hardware aspects that mayall generally be referred to herein as a “circuit,” “module” or“system.” Furthermore, aspects of the present inventive subject mattermay take the form of a computer program product embodied in one or morecomputer readable medium(s) having computer readable program codeembodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent inventive subject matter may be written in any combination ofone or more programming languages, including an object orientedprogramming language such as Java, Smalltalk, C++ or the like andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The program codemay execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider).

Aspects of the present inventive subject matter are described withreference to flowchart illustrations and/or block diagrams of methods,apparatus (systems) and computer program products according toembodiments of the inventive subject matter. It will be understood thateach block of the flowchart illustrations and/or block diagrams, andcombinations of blocks in the flowchart illustrations and/or blockdiagrams, can be implemented by computer program instructions. Thesecomputer program instructions may be provided to a processor of ageneral purpose computer, special purpose computer, or otherprogrammable data processing apparatus to produce a machine, such thatthe instructions, which execute via the processor of the computer orother programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

FIG. 5 is an example illustration of a computer system 500. The computersystem 500 includes a processor unit 501 (possibly including multipleprocessors, multiple cores, multiple nodes, and/or implementingmulti-threading, etc.). The computer system includes memory 507. Thememory 507 may be system memory (e.g., one or more of cache, SRAM, DRAM,zero capacitor RAM, Twin Transistor RAM, eDRAM, EDO RAM, DDR RAM,EEPROM, NRAM, RRAM, SONOS, PRAM, etc.) or any one or more of the abovealready described possible realizations of machine-readable media. Thecomputer system also includes a bus 503 (e.g., PCI, ISA, PCI-Express,HyperTransport®, InfiniBand®, NuBus, etc.), a network interface 505(e.g., an ATM interface, an Ethernet interface, a Frame Relay interface,SONET interface, wireless interface, etc.), and a storage device(s) 509(e.g., optical storage, magnetic storage, etc.). The system memory 507embodies functionality to implement embodiments described above. Thesystem memory 507 may include one or more functionalities thatfacilitate a continued search as described above. Any one of thecontinued search functionalities may be partially (or entirely)implemented in hardware and/or on the processing unit 501. For example,the continued search functionality may be implemented with anapplication specific integrated circuit, in logic implemented in theprocessing unit 501, in a co-processor on a peripheral device or card,etc. Further, realizations may include fewer or additional componentsnot illustrated in FIG. 5 (e.g., video cards, audio cards, additionalnetwork interfaces, peripheral devices, etc.). The processor unit 501,the storage device(s) 509, and the network interface 505 are coupled tothe bus 503. Although illustrated as being coupled to the bus 503, thememory 507 may be coupled to the processor unit 501. Some, or all,portions of the computer system 500 may comprise a continued searchdevice.

FIG. 6 is a block diagram illustrating a networking environment 600,according to some embodiments of the invention. The networkingenvironment 600 can include multiple client devices (“clients”) 602 and604 connected to multiple servers 608, 612 and 616 via a network 614.The network 614 can be a local area network (LAN), a wide area network(WAN), a telephone network, such as the Public Switched TelephoneNetwork (PSTN), an intranet, the Internet, or a combination of networks.For simplicity, the networking environment 600 shows only two clients602 and 604 and three servers 608, 612, and 616 connected to the network614. A search continuation device (e.g., search continuation device 606and/or search continuation device 610) may be embodied in one or moreclient machines, possibly including one or more of the clients 602 and604 or in a server, such as the server 608. According to someembodiments the search continuation device (one or more of searchcontinuation device 606 and/or search continuation device 610)determines search criteria (e.g., search terms for a search query),executes an electronic search (e.g., using the search criteria),provides search results, stores search data, stores user data, logs inuser accounts, analyzes search results, compares search results from aprevious search and a continued search, provides continued searchindicators related to the search results and analysis, and so forth. Inpractice, there may be a different number of clients and servers. Inaddition, in some instances, a client may perform the functions of aserver and a server may perform the functions of a client. Any one ofthe clients 602, 604 and servers 608, 612, and 616 can be embodied asthe computer system described in FIG. 5. The clients 602 and 604 can bemainframes, minicomputers, personal computers, laptops, personal digitalassistants, or the like. Additionally, the clients 602 and 604 may becapable of connecting to the network 614. The clients 602 and 604 maytransmit data over the network 614 or receive data from the network 614via a wired, wireless, optical, or other connection.

While the embodiments are described with reference to variousimplementations and exploitations, it will be understood that theseembodiments are illustrative and that the scope of the inventive subjectmatter is not limited to them. In general, techniques for continuedsearching as described herein may be implemented with facilitiesconsistent with any hardware system or hardware systems. Manyvariations, modifications, additions, and improvements are possible.

Plural instances may be provided for components, operations orstructures described herein as a single instance. Finally, boundariesbetween various components, operations and data stores are somewhatarbitrary, and particular operations are illustrated in the context ofspecific illustrative configurations. Other allocations of functionalityare envisioned and may fall within the scope of the inventive subjectmatter. In general, structures and functionality presented as separatecomponents in the exemplary configurations may be implemented as acombined structure or component. Similarly, structures and functionalitypresented as a single component may be implemented as separatecomponents. These and other variations, modifications, additions, andimprovements may fall within the scope of the inventive subject matter.

What is claimed is:
 1. A method of providing a continued searchcomprising: performing, via an electronic processing unit of anelectronic device, a first electronic search based on first searchcriteria, wherein the performing the first electronic search generatesfirst search results; electronically storing, in a memory storage unit,search data associated with the first electronic search; detecting, viathe electronic processing unit, a selection of an item from the firstsearch results; analyzing, via the electronic processing unit, a use ofcontent contained within the item comprising: determining, via theelectronic processing unit, an amount of time that the content wasdisplayed on an electronic display of the electronic device;multiplying, via the electronic processing unit, the amount of time by areading rate associated with a user for the electronic device to producea product; and dividing, via the electronic processing unit, the productby a number of words in the content; performing, via the electronicprocessing unit, a second electronic search with second search criteriasubstantially similar to the first search criteria, wherein theperforming the second electronic search generates second search results;retrieving, from the memory storage unit, the search data; andproviding, via the electronic processing unit based on the search data,one or more indicators for presentation with the second search results,wherein the one or more indicators specify a difference between thefirst search results and the second search results.
 2. The method ofclaim 1 further comprising: determining a degree to which the contentwas accessed based on the analyzing the use of the content, wherein theproviding the one or more indicators with the second search resultscomprises providing an indicator that specifies the degree to which thecontent was previously accessed.
 3. The method of claim 1, wherein theanalyzing the use of the content comprises: determining an amount ofscrolling of the content; and dividing the amount of scrolling by anumber of scrollable pages of the content.
 4. The method of claim 1further comprising: evaluating first content from a first item includedin the first search results against second content from a second itemincluded in the second search results, wherein the first content isstored in the search data; and determining a difference between thefirst content and the second content based on the evaluating, whereinthe difference between the first search results and the second searchresults comprises the difference between the first content and thesecond content.
 5. The method of claim 4, wherein the providing the oneor more indicators comprises presenting a visual indicator associatedwith a link to the second content, wherein the visual indicatorindicates a numerical value for the difference.
 6. The method of claim4, wherein the providing the one or more indicators comprises presentinga visual indicator that specifies whether the second content wasincluded in the first search results.
 7. The method of claim 4, whereinthe providing the one or more indicators comprises presenting agraphical indicator that specifies whether the first content is missingfrom the second search results.
 8. The method of claim 1 furthercomprising: logging in a user account; storing the search data in theuser account, wherein the search data includes an indication of thefirst search criteria; and providing an option to select the indicationof the first search criteria as the second search criteria.
 9. Acomputer program product for electronically searching, the computerprogram product comprising: one or more computer readable storage media;and program instructions stored on the one or more computer readablestorage media, the program instructions comprising: program instructionsto perform, via an electronic processing unit of an electronic device, afirst electronic search based on first search criteria, wherein theperforming the first electronic search generates first search results;program instructions to electronically store, in a memory storage unit,search data associated with the first electronic search; programinstructions to detect, via the electronic processing unit, a selectionof an item from the first search results; program instructions toanalyze, via the electronic processing unit, a use of content containedwithin the item comprising program instructions to: determine, via theelectronic processing unit, an amount of time that the content wasdisplayed on an electronic display of the electronic device; multiply,via the electronic processing unit, the amount of time by a reading rateassociated with a user for the electronic device to produce a product;and divide, via the electronic processing unit, the product by a numberof words in the content; program instructions to perform, via theelectronic processing unit, a second electronic search with secondsearch criteria substantially similar to the first search criteria,wherein the second electronic search generates second search results;program instructions to retrieve, from the memory storage unit, thesearch data; and program instructions to provide, via the electronicprocessing unit based on the search data, one or more indicators forpresentation with the second search results, wherein the one or moreindicators specify a difference between the first search results and thesecond search results.
 10. The computer program product of claim 9,further comprising program instructions stored on the one or morecomputer readable storage media, to: determine the degree to which thecontent was accessed based on the analyzing the use of the content. 11.The computer program product of claim 9, wherein the programinstructions to analyze the use of the content contained within the itemcomprises program instructions to: determine an amount of scrolling ofthe content; and divide the amount of scrolling by a number ofscrollable pages of the first item.
 12. The computer program product ofclaim 9, further comprising program instructions stored on the one ormore computer readable storage media, to: log in the user account beforeperforming the first electronic search; store second data in the useraccount, wherein the second data includes an indication of the firstsearch criteria; after storing the second data and before performing thesecond electronic search, access the second data from the user account;provide a user interface element for presentation, wherein the userinterface element indicates one or more keywords from the first searchcriteria; detect a selection of the one or more keywords from the userinterface element; and use the one or more keywords as the second searchcriteria.
 13. A computer system comprising: one or more computerprocessors; one or more computer readable storage media; and programinstructions stored on the one or more computer readable storage mediafor execution by at least one of the one or more computer processors,the program instructions comprising: program instructions to perform afirst electronic search based on first search criteria, wherein theperforming the first electronic search generates first search results;program instructions to electronically store first search resultsassociated with the first electronic search; program instructions todetect a selection of an item from the first search results; programinstructions to analyze a use of content contained within the itemcomprising program instructions to: determine an amount of time that thecontent was displayed on an electronic display of the electronic device;multiply the amount of time by a reading rate associated with a user forthe electronic device to produce a product; and divide the product by anumber of words in the content; program instructions to perform a secondelectronic search with second search criteria substantially similar tothe first search criteria, wherein the performing the second electronicsearch generates second search results; program instructions to retrievesearch data; and program instructions to provide one or more indicatorsfor presentation with the second search results, wherein the one or moreindicators specify a difference between the first search results and thesecond search results.
 14. The computer system of claim 13, furthercomprising program instructions stored on the one or more computerreadable storage media for execution by at least one of the one or morecomputer processors, to: log in a user account; store a first set ofkeywords in the user account in response to a first user input; before asecond user input is determined, present, within a graphical userinterface, an indication of the first set of keywords; detect aselection of the first set of keywords; and use, as the second set ofkeywords, the first set of keywords.
 15. The computer system of claim13, further comprising program instructions stored on the one or morecomputer readable storage media for execution by at least one of the oneor more computer processors, to: determine that an item having a uniqueidentifier is included in both the first search results and the secondsearch results; generate a listing of the second search results, whereinthe listing includes a selectable link to the item; determine one ormore differences between a first version of content contained within theitem and a second version of the content contained within the item,wherein the first version of the content is from a first copy of theitem stored at a time before the second user input is determined and thesecond version of the content if from a second copy of the item accessedat a time after the second user input is determined; and provide avisual indicator of the one or more differences, wherein the visualindicator is associated with the selectable link to the item within thelisting.
 16. The computer system of claim 15, wherein the visualindicator specifies a percentage of changes between the first version ofthe content and the second version of the content.
 17. The computersystem of claim 13, wherein the program instructions to provide one ormore indicators for presentation with the second search results based onevaluation of the second search results and the first search results,comprise: program instructions to perform operations to present a visualindicator that specifies whether one or more items from the secondsearch results were included in the first search results.
 18. Thecomputer system of claim 13, wherein the program instructions to provideone or more indicators for presentation with the second search resultsbased on evaluation of the second search results and the first searchresults, comprise: program instructions to present a visual indicatorthat specifies whether one or more items from the first search resultsare missing from the second search results.